package com.fz.us.admin.company.dao;


import com.fz.us.admin.base.dao.BaseDao;
import com.fz.us.admin.company.entity.Admin;

/**
 * Dao接口 - 管理员
 * ============================================================================
 * 版权所有 2016 。
 *
 * @author fallenpanda
 * @version 1.0 2016-07-25 。
 * ============================================================================
 */
public interface AdminDao extends BaseDao<Admin, String> {

    /**
     * 判断用户名是否存在（不区分大小写）
     *
     * @param username
     *
     * @return
     */
    public boolean isExistByUsername(String username);

    /**
     * 判断手机号是否存在（不区分大小写）
     *
     * @param usermobile
     *
     * @return
     */
    public boolean isExistByUsermobile(String usermobile);

    /**
     * 判断邮箱是否存在（不区分大小写）
     *
     * @param useremail
     *
     * @return
     */
    public boolean isExistByUseremail(String useremail);

    /**
     * 根据账号获取 Admin 对象，若不存在，则返回null（区分大小写）
     *
     * @param account username|usermobile|useremail
     *
     * @return
     */
    public Admin getAdminByAccount(String account);

    /**
     * 判断openId是否存在（不区分大小写）
     *
     * @param openId
     *
     * @return
     */
    public boolean isExistByOpenId(String openId);

    /**
     * 根据 openId 获取 Admin 对象，若不存在，则返回null（区分大小写）
     *
     * @param openId
     *
     * @return
     */
    public Admin getAdminByOpenId(String openId);

    /**
     * 根据 openId 获取 Admin 对象，若不存在，则返回null（区分大小写）
     *
     * @param openId
     *
     * @return
     */
    public Admin getWeixinAdminByLastOpenId(String openId);

}
